feat(formatter): aceitar CNPJ alfanumerico (Reforma Tributaria 2026-07-01)#36
Open
rhfranzoni wants to merge 2 commits into
Open
feat(formatter): aceitar CNPJ alfanumerico (Reforma Tributaria 2026-07-01)#36rhfranzoni wants to merge 2 commits into
rhfranzoni wants to merge 2 commits into
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumo
A SEFAZ vai aceitar CNPJ alfanumerico a partir de 2026-07-01 (LC 214/2025, IN RFB 2.229/2024). 12 primeiros caracteres podem conter letras maiusculas; 2 ultimos seguem como digitos verificadores numericos.
Hoje o
Formatador.FormatarCnpj/FormatarCpfCnpjusa regex\dque rejeita letras — efeito pratico: a partir de 2026-07-01 o DANFE/cupom passa a renderizar CNPJ alfanumerico sem mascara visual, prejudicando legibilidade fiscal.Mudancas
DanfeSharp/Formatador.cs\dpara[0-9A-Z]. Ultimo grupo (DV) permanece\d.FormatarCpfCnpj: reescrita para decidir por comprimento da string limpa antes da regex (elimina ambiguidade entre CPF e CNPJ alfanumerico).DanfeSharp.Test/FormatadorTests.cs(novo)30+ casos via
DataTestMethod/DataRow:12ABC345000188,98XYZ123000158).Validacao
DanfeSharp.csproj) compila sem erros.dotnet-scriptchamandoFormatador.FormatarCnpj/FormatarCpfCnpjcom 13 vetores: 13/13 OK.Ressalva
O test project
DanfeSharp.Testja apresentava erros preexistentes de compilacao emFabricaFake.cseDanfeTest.cs(DanfeCCCnao encontrado, conversao double->decimal) na branch main antes deste PR. Esses erros nao foram introduzidos aqui e nao tocam no codigo modificado. Como follow-up separado: corrigir o test project para quedotnet testrode completo.Issues vinculadas
Closes #35apos serem feitos os outros PRs derivados (esta e a primeira etapa).#33(barcode CODE-128A/C com CNPJ alfanumerico) — esta PR resolve o requisito de tipagem; barcode em si segue como track paralelo.Test plan
Breaking changes
Nenhuma:
Pessoas consumindo
FormatarCnpjprecisam estar preparadas para receber strings com letras no retorno a partir de 2026-07-01 — mas o tipo de retorno (string) e o formato visual (XX.XXX.XXX/XXXX-XX) sao os mesmos.Generated with Claude Code (https://claude.com/claude-code)
Relates to #33 (requisito de tipagem do CNPJ alfanumérico; barcode CODE-128A/C segue como track paralelo — issue permanece aberta).